package com.johann.classify;
// 将第一个数看为最小值，将最小的下标minIndex赋予第一个数字，然后从第二个数开始与第一个数进行比较
// 若比第一个数大，则不动；若比第一个数小，调换下标和元素的值，依次执行
public class SelectionSort {
    public void selectionSort(Integer [] arr){
        //定义一个下标，把它作为最小值

        for (int i = 0; i < arr.length; i++) {
           int minIndex=i;
            //这里的循环，应该是 j=i+1
            for (int j = i+1; j < arr.length; j++) {
                //如果后续有数始终比minIndex小，将minIndex替换掉
                if (arr[minIndex]>arr[j]) {
                    minIndex=j;
                }
            }
            //当最初的下标 变化时，就需要交换
            if (i!=minIndex) {
                int temp = arr[minIndex];
                arr[minIndex]=arr[i];
                arr[i]=temp;
            }
        }
    }
}
